草庐IT

Java HotSpot 枚举开销

全部标签

C#枚举到字符串自动转换?

是否可以让编译器自动将我的枚举值转换为字符串,这样我就可以避免每次都显式调用ToString方法。这是我想做的一个例子:enumRank{A,B,C}RankmyRank=Rank.A;stringmyString=Rank.A;//Error:Cannotimplicitlyconverttype'Rank'to'string'stringmyString2=Rank.A.ToString();//OK:butisextrawork 最佳答案 没有。枚举是它自己的类型,所以如果你想将它转换成其他类型,你必须做一些工作。但是,根据您

c# - 在 C# 中枚举 Windows 可移植设备

我正在尝试使用Windows可移植设备API和此API提供的PortableDeviceManager在Windows上枚举已连接的可移植设备。我已经按照MSDN文档link实现了设备ID枚举。和各种博客link,但它们都会导致相同的问题-当有多个连接时,我只能让它为我提供一个设备的ID。这是我正在使用的C#代码片段:PortableDeviceManagerClassdeviceManager=newPortableDeviceManagerClass();deviceManager.RefreshDeviceList();uintnumberOfDevices=1;deviceMa

c# - 到处查找枚举转换为字符串

我目前正试图在解决方案中的任何地方找到将特定枚举转换为字符串的地方,无论是否显式调用了ToString()。(这些被替换为使用枚举描述的转换以改进混淆。)示例:我想找到诸如stringstr="Value:"+SomeEnum.someValue;这样的代码我尝试用包含隐式转换到枚举类型并覆盖包装类中的ToString()的包装类替换枚举本身,但是当我尝试搜索ToString()覆盖的使用时,它给了我一个列表解决方案中对任何内容调用ToString()的地方(并且仅在明确调用它的地方)。搜索是在VisualStudio中使用ReSharper完成的。还有其他方法可以找到这些枚举到字符串

c# - 堆栈和队列枚举顺序

我知道List枚举器保证枚举顺序并尊重最后的排序操作,我知道Dictionary和HashSet不,即你可以不确定Dictionarydictionary=...;foreach(varpairindictionary){}将按照附加的顺序处理对。Stack和Queue呢?他们的调查员是否保证任何顺序? 最佳答案 对于Stack,枚举目前由一个名为StackEnumerator的嵌套私有(private)类完成(这是来自ReferenceSource):privateclassStackEnumerator:IEnumerator,

c# - 枚举网络共享

.net框架是否有一部分可以枚举主机上的文件共享?我发现了一些使用WMI的东西,但我不想走那条路。 最佳答案 您可以使用NetShareEnumwin32api。http://www.pinvoke.net/default.aspx/netapi32/netshareenum.html或者看看下面的项目,它是.NETWrapper。http://www.codeproject.com/KB/IP/networkshares.aspx 关于c#-枚举网络共享,我们在StackOverflo

c# - 如何枚举 x^2 + y^2 = z^2 - 1(有附加约束)

让我们N是一个数字(10.我必须把它分成3个数字(x,y,z)这样它就可以验证以下条件。1.x我必须找出我可以从一个方法中的给定数字中得到多少组合。我已经尝试如下,但是它花费了很多时间来获得更高的数字并导致超时..intN=Int32.Parse(Console.ReadLine());Listres=newList();//x我的问题:我的解决方案是花时间获得更大的数字(我认为这是for循环),我该如何改进它?是否有更好的方法? 最佳答案 这里有一个枚举三元组的方法,而不是详尽地测试它们,使用这里描述的数论:https://mat

c# - 枚举 MatchCollection 时,为什么 var 结果是 Object 类型而不是 Match 类型?

我注意到下面的代码有些奇怪:MatchCollectionmc=Regex.Matches(myString,myPattern);foreach(varmatchinmc)Console.WriteLine(match.Captures[0]);//变量match的类型是Object而不是Match。我习惯于使用var枚举集合,没有这样的问题。为什么MatchCollection不同? 最佳答案 MatchCollection是在.NET2之前编写的,所以它只是实现了IEnumerable而不是IEnumerable.但是,您可以

C# 通用枚举转换为特定枚举

我有接受"T"类型的通用方法,这是枚举器。在方法内部,我必须调用辅助类方法,方法名称取决于枚举器的类型。publicMeth(Ttype){if(typeof(T)==typeof(FirstEnumType)){FirstEnumTypet=???//IsomehowneedtoconvertTtypetoFirstEnumTypethis.helperFirstCalcBll(t);}else{SecondEnumTypet=???//IsomehowneedtoconvertTtypetoSecondEnumTypethis.helperSecondCalcBll(t);}}

c# - 为 UI 目的对枚举进行排序

假设我们有一个UI,在这个UI中我们有一个下拉菜单。此下拉列表中填充了枚举的翻译值。恭喜,我们可以按枚举的int值、枚举的名称以及枚举的翻译名称进行排序。但是如果我们想要与上述3种不同的排序方式呢?如何处理这样的需求? 最佳答案 实现你自己的IComparer:usingSystem;usingSystem.Collections.Generic;namespacetest{classProgram{enumX{one,two,three,four}classXCompare:IComparer{publicintCompare(X

c# - 将对象转换为枚举 C#

我已将枚举列表绑定(bind)到组合框。现在我想让SelectedItem返回枚举,当前它以object类型返回。如何将此对象转换为我的枚举?我的框架是windows-phone-7上的silverlight 最佳答案 直接转换:MyEnumselected=(MyEnum)cboCombo.SelectedItem;请注意,在这种情况下您不能使用as转换,因为Enum是一种值类型。 关于c#-将对象转换为枚举C#,我们在StackOverflow上找到一个类似的问题: